import Vue from "vue";
import Vuex from "vuex";
import createPersistedState from "vuex-persistedstate";
import reviewReply from "./modules/reviewReply";
import dashBoard from "./modules/dashBoard";
import socialMedia from "./modules/socialMedia";
import auth from "./modules/auth";
import hotel from "./modules/hotel";

Vue.use(Vuex);

export default new Vuex.Store({
  modules: {
    auth,
    reviewReply,
    dashBoard,
    socialMedia,
    hotel,
  },
  plugins: [
    createPersistedState({
      key: "vuex", // 存储在localStorage中的键名
      storage: window.localStorage, // 使用localStorage存储
      // 移除paths配置，默认持久化所有模块
      // paths: []  // 不指定路径，即持久化所有状态

      // 可选：自定义序列化和反序列化函数
      // serialize: (state) => JSON.stringify(state),
      // deserialize: (str) => JSON.parse(str),

      // 可选：指定哪些模块不持久化（如果有需要）
      // filter: (mutation) => {
      //   // 返回true表示该mutation会被持久化，false则不会
      //   return true;
      // }
    }),
  ],
});
